#include<stdio.h>


int main()
{

	//自增自减运算符
	//单独写一行的时候自增自减运算符在变量前后无所谓
	//++a先加后用，a++先用后加
	int a = 10;
	int b = a++;//先用后加，使用时是原来的值
	int a1 = 10;
	int b1 = ++a1;//先加后用，使用时是自增后的值
	printf("%d,%d\n", b, b1);

	//win系统中前缀优先于后缀
	//前缀先统一自增自减然后再把结果拿出来用
	//后缀先用，表达式中变量都用完再自增自减
	//其他系统例如Linux中不统一自增自减，变量分别自增自减，并且优先级一样
	int i = 10;
	int k = i++ + i++;
	printf("%d\n", k);
	//i++ + i++
	// 10    10
	//表达式结束后：
	// 12    12
	int j = 10;
	int k1 = ++j + ++j;
	printf("%d\n", k1);
	//++i + ++i     自增了2次
	// 12    12
	printf("-----------------------------\n");


	//赋值运算符
	//+= 左右相加，再赋值给左边
	//等同于a = a + b；
	int a2 = 10;
	int b2 = 20;
	a2 += b2;
	printf("%d\n", a2);
	//其余运算法则相同
	a2 *= b2;
	printf("%d\n", a2);
	a2 -= b2;
	printf("%d\n", a2);
	a2 /= b2;
	printf("%d\n", a2);
	a2 %= b2;
	printf("%d\n", a2);
	printf("-----------------------------\n");




	//关系运算符
	/*  == 判断a是否等于b
		!= 判断a是否不等于b
		>  判断a是否大于b
		>= 判断a是否大于等于b
		<  判断a是否小于b
		<= 判断a是否小于等于b   */

	//结果：成立则输出1 不成立则输出0

	int a3 = 10;
	int b3 = 20;
	printf("%d\n", a3 == b3);
	printf("%d\n", a3 != b3);
	printf("%d\n", a3 >  b3);
	printf("%d\n", a3 >= b3);
	printf("%d\n", a3 <  b3);
	printf("%d\n", a3 <= b3);

	int x = 100;
	//判断偶数
	printf("%d\n", x % 2 == 0);
	//判断是否超过100
	printf("%d\n", x > 100);
	//判断银行卡余额是否足够100
	printf("%d\n", x >= 100);
	printf("-----------------------------\n");



	//逻辑运算符
	// 1:真   0:假
	// && 与；   两边都为真则输出1
	// || 或；   两边一个为真则输出1
	// ！非（取反）；1变为0 0变为1
	printf("%d\n", 1 && 1);
	printf("%d\n", 1 && 0);
	printf("%d\n", 0 && 0);

	printf("%d\n", 1 || 1);
	printf("%d\n", 1 || 0);
	printf("%d\n", 0 || 0);

	//实际开发中，最多只用一个
	printf("%d\n", !1);
	printf("%d\n", !0);
	printf("--------------------------------\n");










	return 0;

}

